/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package comandos.Sel;
import entidades.Voo;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.Statement;
import erros.ErroPersistencia;
import java.util.ArrayList;
/**
 * Classe que representa os comandos de consulta na tabela voo no banco de
 * dados.
 * @author daniel
 */
public class CmdSelAllVoo extends CmdSel {
    /**
     * Monta o comando Sql para consultar todos os voos.
     */
    public CmdSelAllVoo() {
        comandoSQL = "SELECT * FROM VOO;";
    }
   /***
    * Executa o comando no banco de dados.
    * @param conexao conexao com o banco de dados.
    * @throws erros.ErroPersistencia erro lançado caso a
    * execução não obtenha sucesso.
    */
    @Override
    public final Object executar(final Connection conexao)
            throws ErroPersistencia {
        try {
            Statement st = conexao.createStatement();
            ResultSet rs = st.executeQuery(comandoSQL);
            ArrayList<Voo> lista = new ArrayList();
            while(rs.next()) {

                String dataPartida = rs.getString("dataPartida");
                String dataChegada = rs.getString("dataChegada");
                String horarioPartida = rs.getString("horarioPartida");
                if(horarioPartida.length() == 7) {
                    horarioPartida = "0" + horarioPartida;
                }
                String horarioChegada = rs.getString("horarioChegada");
                if(horarioChegada.length() == 7) {
                    horarioChegada = "0" + horarioChegada;
                }
                lista.add(new Voo(rs.getString("numeroVoo"),
                        dataPartida,
                        dataChegada,
                        horarioPartida,
                        horarioChegada,
                        Integer.parseInt(rs.getString("vagas"))
                        ));
            }
            return lista;
        } catch (SQLException e){
            throw new ErroPersistencia("Erro na execucao do comando SQL");
        }
    }
}
